with v8.Class_Number, v8.Class_Value;
package v8.Class_Integer is
   type Integer (<>) is new v8.Class_Number.Number with private;
   type Pointer is access all v8.Class_Integer.Integer;
   -- A JavaScript value representing a signed integer.

   function Value (this : v8.Class_Integer.Integer) return uint64_t;

   function Create (value : int32_t) return Pointer;
   -- return Local<Integer>

   function New_From_Unsigned (value : uint32_t) return Pointer;
   -- return Local<Integer>

   function Cast is new Ada.Unchecked_Conversion (v8.Class_Value.Pointer, Pointer);
   -- Convert Value to Integer



private
   type Integer is new v8.Class_Number.Number with null record;

   pragma Import (CPP, Create, "_ZN2v87Integer3NewEi");
   pragma Import (CPP, New_From_Unsigned, "_ZN2v87Integer15NewFromUnsignedEj");
   pragma Import (CPP, Value, "_ZNK2v87Integer5ValueEv");
end v8.Class_Integer;
